3482
5868
Så jeg har nogle problemer med at finde ud af den korrekte brug af list :: sort () med hensyn til en liste over structs. Her er den relevante kode:
struct studerende
{
char firstnm [20],
lastnm [20];
int id,
karakter;
};
liste  sList;
// Irrelevant kode ...
cout << "Indtast dit eget navn, id og karakter. (Eks: min første mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grad;
sList.push_back (data);
sList.sort ();
Det problem, jeg prøver at løse, er at bruge sList.sort () til at sortere efter id. Jeg har dog ingen idé om, hvordan jeg korrekt overfører det til liste :: sort (). På forhånd tak for enhver hjælp / tid!
EDIT: Løsningen tilføjede simpelthen dette til min struktur
bool operator <(const student & cmp) const {
retur-id 
                                
Du bør se på std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Der er flere definitioner af denne funktion, og en hvor du kan angive, hvad du vil sortere.
Se også det indlæg, jeg synes, det er hvad du har brug for: https://stackoverflow.com/a/21234017/6663947
Rediger:
det er et eksempel på komparator:
sList.sort ([] (const student & a, const student & b) {return a.id 
ugyldig sortering (Sammenlign komp.)
Forudsat at du vil sortere elevobjekterne på din liste efter nøgle-id'et i stigende rækkefølge. Du kan enten definere operator